package cn.net.mysoft.account.api.common;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Random;
import java.util.TimeZone;

public class DateTimeTool {
    public static int getUnixTimestamp(){
        return (int)System.currentTimeMillis() / 1000;
    }

    public static int lenOfCurrent(int opp) {
        return Math.abs(getUnixTimestamp()-opp);
    }

    public static String getRandomStr(){
        Random r = new Random();
        long ran1 = Math.abs(r.nextLong());

        return Long.toString(ran1);

    }

    public static String  getUnixTimeStamp(){
        return Long.toString(System.currentTimeMillis()/1000L);
    }
    public static boolean isExpire(String utm,String expire){
        long cur_utm = System.currentTimeMillis()/1000L;
        long lst_utm = Long.parseLong(utm) + Long.parseLong(expire) * 2L;

        return lst_utm < cur_utm;
    }
    public static String getBeforeDateTime(int secs){
        long ctms = System.currentTimeMillis() - secs*1000L;

        return getCurrentDateTimeByUnixNumber(ctms);
    }
    public static String getCurrentDateTime(){
        //设置基础时间为格林威治时间
        TimeZone gmtTz = TimeZone.getTimeZone("GMT");
        //设置目标时间为中国标准时
        TimeZone desTz = TimeZone.getTimeZone("Asia/Shanghai");
        GregorianCalendar rightNow = new GregorianCalendar(gmtTz);
        Date d=rightNow.getTime();
        // Date d = new Date();

        //设置时间字符串格式
        SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //设置目的时间时区
        df.setTimeZone(desTz);

        //从前端或者自己模拟一个日期格式，转为String即可

        return df.format(d);
    }

    public static String getCurrentDateTimeByUnixNumber(long l){
        //设置目标时间为中国标准时
        TimeZone desTz = TimeZone.getTimeZone("Asia/Shanghai");

        Date d = new Date(l);

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //设置目的时间时区
        format.setTimeZone(desTz);
        //从前端或者自己模拟一个日期格式，转为String即可

        return format.format(d);
    }

}
